Conversation
Design for installer-level MCP server deduplication to address Issue #8. Key decisions: - Identity model: key_name + origin tuple - Lockfile: new shared_mcp_servers section - Highest version wins by default - User override via --no-dedup or per-server config - Re-extract from cached archives on uninstall - No manifest or archive format changes
8-task plan covering design principles, server identity model, lockfile schema, install/uninstall lifecycle changes, archive cache, and design rationale updates.
Owner
Author
|
@copilot review |
There was a problem hiding this comment.
Pull request overview
This PR updates the ccpkg specification (and its website-rendered MDX copies) to introduce installer-level MCP server deduplication, including an identity model, lockfile tracking via shared_mcp_servers, lifecycle updates for install/uninstall, and an archive cache requirement to support reassignment.
Changes:
- Add a new design principle for MCP server deduplication and define an identity + version resolution model with user overrides.
- Extend the lockfile format with
shared_mcp_serversand specify an installer archive cache for uninstall reassignment. - Revise install/uninstall lifecycle steps to perform deduplication on install and reassignment on uninstall; document the design decision in rationale/plans.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
| spec/specification.md | Source-of-truth spec updates: dedup rules, lifecycle steps, lockfile + archive cache additions. |
| src/content/docs/specification/overview.mdx | Mirrors the new design principle on the website docs. |
| src/content/docs/specification/component-types.mdx | Adds “Server Deduplication” subsection for MCP servers in website docs. |
| src/content/docs/specification/install-lifecycle.mdx | Mirrors install/uninstall dedup + reassignment logic in website docs. |
| src/content/docs/specification/lockfile.mdx | Documents shared_mcp_servers and archive cache in website docs. |
| src/content/docs/design/rationale.mdx | Adds a rationale/design decision section for install-time dedup. |
| docs/plans/2026-02-15-mcp-dedup-plan.md | New implementation plan doc for the spec changes. |
| docs/plans/2026-02-15-mcp-dedup-design.md | New design doc describing the dedup approach and alternatives. |
| docs/plans/2026-02-14-ccpkg-design.md | Adds the MCP dedup design decision to the existing design plan/doc. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Fix Mode 1 origin to use full args array instead of args[0] - Add deterministic null version comparison rules - Define non-interactive conflict resolution (fail with error) - Specify package-scoped keying for dedup:false entries - Clarify uninstall reassignment for linked packages - Align cache paths in lockfile.mdx with Astro docs convention - Update merged_mcp_servers field description in spec
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds MCP server deduplication to the ccpkg specification, addressing duplicate processes, config bloat, and context waste when multiple packages bundle the same MCP server.
Fixes #8
Changes
shared_mcp_servers: New top-level field tracking which packages declare each server, active source, and dedup stateFiles modified
spec/specification.md(source of truth)src/content/docs/specification/overview.mdxsrc/content/docs/specification/component-types.mdxsrc/content/docs/specification/install-lifecycle.mdxsrc/content/docs/specification/lockfile.mdxsrc/content/docs/design/rationale.mdxdocs/plans/2026-02-14-ccpkg-design.mdTest plan